草庐IT

java - 如何将 JSONArray 转换为 int 数组?

全部标签

ruby-on-rails - 将 Date 对象转换为 TimeWithZone

我需要将Date对象转换为TimeWithZone对象,表示给定时区中那一天的开始。以下方法可行,但似乎太复杂了,因为它需要我将日期转换为字符串:?>date=Date.parse("2010-02-17")=>Wed,17Feb2010>>ActiveSupport::TimeZone['EasternTime(US&Canada)'].parse(date.to_s)=>Wed,17Feb201000:00:00EST-05:00>>ActiveSupport::TimeZone['UTC'].parse(date.to_s)=>Wed,17Feb201000:00:00UTC00

ruby - 将转义的 unicode 字符串转换为 ruby​​ 1.8 中的字符

我必须阅读一些包含以下内容的文本文件:\u201CGushingCross的小贩夫人\u201D在ruby​​1.9终端中,当我创建一个包含以下内容的字符串时:ruby-1.9.1-p378>"\u2714\u2714mygreatstring\u2714\u2714"=>"✔✔mygreatstring✔✔"在ruby​​1.8中,我没有将unicode代码转换为它们的字符:ree-1.8.7-2010.01>"\u2714\u2714mygreatstring\u2714\u2714"=>"u2714u2714mygreatstringu2714u2714"有什么简单的方法可以在R

ruby - 使用 Sinatra 时如何从 gem 导入 rake 任务?

我正在尝试向orientdbgem添加一些基本的rake任务,这将允许我创建数据库、创建数据库迁移和迁移数据库——类似于rails迁移。当我在本地执行rake任务时,我可以使用db:settings、db:create和db:create_migration,但是在将它们放入gem之后,我不知道如何从Sinatra访问它们使用“rake”时的应用。我有一种感觉,我要么是a)没有正确地组织gem中的文件和/或b)没有从Sinatra应用程序正确地调用东西。我的fork存储库的当前状态是https://github.com/ricaurte/orientdb-jruby我将任务文件放在li

ruby - 如何使用 ruby​​ 判断 FTP 文件是否存在?

我正在尝试找出判断文件是否存在于ftp服务器上的最佳和最快的方法。这是我想出的...defremote_exists?(idx)#@file.rewindif@file.eof?ftp=Net::FTP.new(FTP_SERVER)ftp.loginbeginftp.size(idx)rescueExceptionreturnfalseendtrueend似乎只捕获每个异常不是一个好主意,但我在获取正确的特定异常时遇到了麻烦。我也在使用OpenURI在我的代码中实际获取文件。我试图弄清楚是否有一些更好的方法,但我认为它只是使用Net::FTP。 最佳答案

ruby - 如何从 eval 内部返回?

我有一个代码需要在eval中使用。有时我需要退出评估代码,但我的尝试会导致错误。例如:#expectedtosee1,2and5;not3nor4;andnoerrorseval"puts1;puts2;return;puts3;puts4"#=>Error:unexpectedreturnputs5我尝试了return、end、exit、break,但都没有成功。exit不会引发错误,但我没有得到5。(注意:我知道eval是邪恶的,但在这种情况下我需要使用它。) 最佳答案 谢谢大家,但我找到了最适合我的问题的解决方案:lambda

Ruby:将十进制的日期转换为名称的日期

是否可以将strftime("%u")值快速转换为strftime("%A")或我是否需要构建一个等价散列,如{"Monday"=>1,.........“星期日”=>6}我有一个以某天为十进制值的数组class_index=[2,6,7]我想遍历这个数组来构建这样的天数数组[nil,"Tuesday",nil,nil,nil,"Saturday","Sunday"]所以我可以做class_list=[]class_index.eachdo|x|class_list[x-1]=convertxvaluetodaynameend这可能吗? 最佳答案

ruby-on-rails - 如何匹配YYYY-MM-DDThh :mm:ssTZD timezone format in ruby

我想检查在ruby​​中输入的日期的iso8601格式,比如start_date="2011/05/05"应该匹配2011-05-05T00格式:00:00-04:00并相应地返回错误。我们应该在这里使用正则表达式还是为此提供任何方法? 最佳答案 听起来像你想要的Time.iso8601:require'time'iso=Time.iso8601(start_date)参见thisblogpost获取更多信息。编辑:这是一个简短但完整的有效测试程序:require'time'text="2011-05-05T00:00:00-04:

ruby - 将字符串插入数组中的数组会产生意外结果

我在Ruby中有一个包含5个空数组的数组。我正在尝试使用运算符将字符串插入第一个数组,但结果是字符串被插入所有数组。请帮助我理解这一点。预期的输出是:#=>[["car"],[],[],[],[]]但我得到:#=>[["car"],["car"],["car"],["car"],["car"]]IRB转储:1.9.3-p194:001>output=Array.new(5,[])=>[[],[],[],[],[]]1.9.3-p194:002>output.inspect=>"[[],[],[],[],[]]"1.9.3-p194:003>output[0].inspect=>"[]"

Ruby 的 "each"方法没有遍历数组中的所有项目?

我正在尝试以下代码:a=[1,2,3,4]a.eachdoputs"Removing#{a.last}"a.popend但我并没有弹出所有四个数字,而是只弹出了前3个数字。实际上,执行类似putsa.length的操作会返回1并且puts-ing显示元素“1”仍然存在。我需要如何正确使用该方法?(我正在使用Ruby2.0)。 最佳答案 我怀疑发生这种情况是因为您在修改列表时迭代了列表的元素。尝试以下操作:a=[1,2,3,4]untila.empty?doputs"Removing#{a.last}"a.popend

arrays - 通过索引拒绝 Ruby 数组元素的惯用方法

给定一个Ruby数组ary1,我想生成另一个数组ary2,它具有与ary1相同的元素,除了那些在一组给定的ary1索引处。我可以将这个功能猴子修补到Ruby的Array类上classArraydefreject_at(*indices)copy=Array.new(self)indices.uniq.sort.reverse_eachdo|i|copy.delete_atiendreturncopyendend然后我可以像这样使用它:ary1=[:a,:b,:c,:d,:e]ary2=ary1.reject_at(2,4)puts(ary2.to_s)#[:a,:b,:d]虽然这很好用